package com.shop.shopserver.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.concurrent.TimeUnit;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
// 用于@RequestKeyParam注解用于指定生成唯一键的参数。 定义@RequestLock注解用于标记需要防抖的接口方法
public @interface RequestLock {
    // RequestLock注解中定义的键前缀
    String prefix() default "";
    long expire() default 5; // 锁过期时间，单位：秒
    // 这个属性用于指定锁过期时间的时间单位，与expire()属性配合使用，以准确设置锁的有效时长。
    TimeUnit timeUnit() default TimeUnit.SECONDS;
    // 分隔符
    String delimiter() default "&";
}
